package com.kingtao.session;

import io.netty.channel.Channel;

/**
 * @Author: kingtao
 * @Date: 2023-08-25-14:34
 * @Description: 会话管理接口
 */
public interface Session {
    /**
     * 绑定会话
     * @param channel 哪个 channel 要绑定会话
     * @param master 会话绑定用户
     */
    public void bind(Channel channel, int master);

    /**
     * 解绑会话
     * @param channel 哪个 channel 要解绑会话
     */
    void unbind(Channel channel);

    /**
     * 获取属性
     * @param channel 哪个 channel
     * @param master 属性名
     * @return 属性值
     */
    Object getAttribute(Channel channel, String master);

    /**
     * 设置属性
     * @param channel 哪个 channel
     * @param name 属性名
     * @param value 属性值
     */
    void setAttribute(Channel channel, String name, Object value);

    /**
     * 根据用户名获取 channel
     * @param master 用户名
     * @return channel
     */
    Channel getChannel(int master);
}
